import com.mysql.cj.jdbc.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

//改
public class JdbcDemo3 {
    public static void main(String[] args) throws SQLException { //JVM异常中止
        Scanner scanner = new Scanner(System.in);

        // 1.创建数据源（dataSource）对象
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java117?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("1205");

        // 2.和数据库服务器进行通信，需要建立网络连接
        Connection connection = dataSource.getConnection();

        // 3.构造SQL语句
        System.out.println("请输入要修改的 id：");
        int id = scanner.nextInt();
        System.out.println("请输入 name 的新数据：");
        String name = scanner.next();

        String sql = "update student set name = ? where id = ?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1,name);
        preparedStatement.setInt(2,id);

        // 4.执行SQL（把SQL通过网络发送到服务器）
        // 进行增、删、改，甚至建表删表...... 这些操作统称为 update
        // 查, 有另一个方法 executeQuery
        int n = preparedStatement.executeUpdate();
        System.out.println("n = " + n); //当前的操作影响到几行

        // 5.关闭连接等资源
        preparedStatement.close();
        connection.close();
    }
}
